package com.lfy.ai;

import com.alibaba.dashscope.common.Message;

import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
/**
 * 人工智能对话分组接口规范
 * @author lvfeiyang
 */
public interface AiGroupNorm {
     Integer MAX_HISTORY_SIZE = 20;
     /**
      * 获取所属模型id
      * @return 模型id
      */
     int getModelId();

     /**
      * 初始化登录创建默认组
      * @param clientId 客户端id
      * @return 默认组id
      */
     int initLogin(String clientId);

     /**
      * 创建组
       * @param clientId 客户端id
      * @return 新创建的组id
      */
     Integer createGroup(String clientId);

     /**
      * 获取当前客户端的所有分组信息
      * @param clientId 客户端id
      * @return 分组信息
      */
     Map<Integer, CopyOnWriteArrayList<Message>> getMap(String clientId);

     /**
      * 获取指定客户端指定组的所有消息
      * @param clientId 客户端id
      * @param groupId 组id
      * @return 消息列表
      */
     List<Message> getMessages(String clientId, Integer groupId);

     /**
      * 向指定客户端指定组发送消息
      * @param clientId 客户端id
      * @param groupId 组id
      * @param message 消息
      */
     void putMessage(String clientId, Integer groupId, Message message);

}
